Преобразование десятичной дробное части в двоичное представление

 

 

Правило точности. Предположим, дано десятичное число, которое в виде десятичной дроби представимо с точностью до N знаков. Для того, чтобы соответствующее двоичное число было той же точности, в нём необходимо записать M - знаков, так что бы

 

2m > 10N

 

А теперь попробуем получить правило перевода, и для начала рассмотрим пример 5,401

 

Решение: Целую часть получим по уже известным правилам, и она равна двоичному числу 101. А дробную часть разложим по степеням 2.

 

Шаг 1: 2-2  = 0,25; 0,401 - 0,25 = 0,151. - это остаток.

 

Шаг 2: Сейчас необходимо степенью двойки представить 0,151. Сделаем это: 2-3 = 0,125; 0,151 - 0,125 = 0,026

 

Таким образом, дробную часть можно представить в виде 2-2 +2-3 . То же самое можно записать таким двоичным числом : 0,011. В первом дробном разряде стоит ноль, это потому, что в нашем разложении степень 2-1 отсутствует.

Из первого и второго шагов ясно, что это представление не точное и может быть разложение желательно продолжить. Обратимся к правилу. Оно говорит, что нам нужно столько знаков М чтобы 103 было меньше чем 2М. То есть 1000<2M. То есть в двоичном разложении у нас должно быть не менее десяти знаков, так как 29 = 512 и только 210 = 1024. Продолжим процесс.

 

Шаг 3: Сейчас работаем с числом 0,026. Ближайшая к этому числу степень двойки 2-6 = 0,015625; 0,026 - 0,015625 = 0,010375 теперь наше более точное двоичное число имеет вид: 0,011001. После запятой уже шесть знаков, но этого пока недостаточно, поэтому выполняем ещё один шаг.

 

Шаг 4: Сейчас работаем с числом 0,010375. Ближайшая к этому числу степень двойки 2-7 = 0,0078125;

0,010375 - 0,0078125 = 0,0025625

 

Шаг 5: Сейчас работаем с числом 0,0025625. Ближайшая к этому числу степень двойки 2-9 = 0,001953125;

0,0025625 - 0,001953125 = 0,000609375

 

Последний получившийся остаток меньше чем 2-10 и если бы мы желали продолжать приближение к исходному числу, то понадобилось 2-11, но это уже превосходит требуемую точность, а следовательно расчёты можно прекратить и записать окончательное двоичное представление дробной части.

 

(0,401)10 = (0,011001101)2

 

Как видно, преобразование дробной части десятичного числа в двоичное представление немного более сложно, чем преобразование целой части.

 

А сейчас запишем алгоритм преобразования:

 

Исходные данные алгоритма: Через А обозначим исходную правильную десятичную дробь. Пусть эта дробь содержит N знаков.

 

Алгоритм

 

Пункт 1. Определим количество необходимых двоичных знаков М из неравенства 10N < 2M

 

Пункт 2: Цикл вычисления цифр двоичного представления (цифры после нуля). Номер цифры обозначим символом К.

 

Номер цифры = 1

Если 2> А То

     в запись двоичного числа добавляем ноль

   Иначе

     в запись двоичного числа добавляем 1

     А = А - 2

     К = К + 1

Если К > М

     То работа алгоритма завершена

     Иначе переходим на пункт 2.

 

Hosted by uCoz